<?xml version="1.0" encoding="UTF-8"?>

<project> 
  <modelVersion>4.0.0</modelVersion>  
  <groupId>${groupId}</groupId>  
  <artifactId>${artifactId}</artifactId>  
  <version>0.9-SNAPSHOT</version>  
  <packaging>dotnet-library</packaging>  
  <build> 
    <!-- ****************************************************************
			Required. Repoints the source and output dirs to the 
		  **************************************************************** -->  
    <outputDirectory>target/dotnet-assembly</outputDirectory>  
    <testOutputDirectory>target/test-dotnet-assembly</testOutputDirectory>  
    <sourceDirectory>src/main/csharp</sourceDirectory>  
    <testSourceDirectory>src/test/csharp</testSourceDirectory>  
    <!-- ****************************************************************
		  			COMPILER PLUGIN
		  Required, this is the api around the compilers.
		  **************************************************************** -->  
    <plugins> 
      <plugin> 
        <artifactId>maven-compiler-plugin</artifactId>  
        <version>2.0</version>  
        <extensions>true</extensions>  
        <!--  these are general config options across the CSharp compiler -->  
        <configuration> 
          <compilerId>csharp</compilerId>  
          <fork>true</fork>  
          <!--  default executable = csc specify mcs to compile with mono -->  
          <!--  executable>csc</executable -->  
          <!--  compiler arguments see docco for full list -->  
          <compilerArguments> 
            <doc>true</doc>  
            <!--  example of ignoring warnings -->  
            <!--  nowarn>1591</nowarn --> 
          </compilerArguments>  
          <includes> 
            <include>**/*.cs</include> 
          </includes> 
        </configuration>  
        <!--  executions need to be specified for the dotnet plugin 
				(is slightly ugly, hopefully can get rid of in future -->  
        <executions> 
          <!--  this configuration is required to tell the compiler what is different about
						  the main compile as apposed to the test compile -->  
          <execution> 
            <id>compile</id>  
            <phase>compile</phase>  
            <goals> 
              <goal>compile</goal> 
            </goals>  
            <configuration> 
              <compilerArguments> 
                <target>library</target>  
                <!--  mainClass>MyNamespace.MyStaticMainClass</mainClass --> 
              </compilerArguments> 
            </configuration> 
          </execution>  
          <!--  this configuration is required to tell the compiler what is different about
						  the main compile as apposed to the test compile -->  
          <execution> 
            <id>testCompile</id>  
            <phase>test-compile</phase>  
            <goals> 
              <goal>testCompile</goal> 
            </goals>  
            <configuration> 
              <compilerArguments> 
                <!--  the library element is required for test compile -->  
                <target>library</target>  
                <!--  the isTest element is required for the test compile -->  
                <out>unit-tests.dll</out> 
              </compilerArguments> 
            </configuration> 
          </execution> 
        </executions>  
        <!-- ****************************************************************
		  			CSHARP COMPILER DEPENDENCY
		  Required as this is the compiler maven uses to do the compile.
		  **************************************************************** -->  
        <dependencies> 
          <dependency> 
            <groupId>org.codehaus.plexus</groupId>  
            <artifactId>plexus-compiler-csharp</artifactId>  
            <version>1.6-SNAPSHOT</version> 
          </dependency> 
        </dependencies> 
      </plugin>  
      <!-- ****************************************************************
		  			CSHARP PLUGIN
		  Required as defines custom build cycles
		  **************************************************************** -->  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-csharp-lifecycle-plugin</artifactId>  
        <version>1.0-SNAPSHOT</version>  
        <extensions>true</extensions> 
      </plugin>  
      <!-- ****************************************************************
		  			NUNIT PLUGIN
		  If your application requires a .config file uncomment the configuration element
		  below 
		  **************************************************************** -->  
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-nunit-plugin</artifactId>  
        <version>1.0-SNAPSHOT</version>  
        <!-- configuration>
	          <configFile>src/main/resources/App.config</configFile>
	        </configuration --> 
      </plugin>  
      <!-- ****************************************************************
		  			VISUAL STUDIO PLUGIN
		  if you wish to use the Visual Studio Plugin, uncomment the lines below
		  and add your own set of includes as necessary. These will be added to the 
		  .csproj file.
		  **************************************************************** -->  
      <!--  plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-vstudio-plugin</artifactId>
	        <configuration>
	          <frameworkHome>${dotnet.home}</frameworkHome>
	          <includes>
				<include>**/*.aspx</include>
				<include>**/*.resx</include>
				<include>**/*.cs</include>
	          </includes>
	          <references>
		       	<reference>
		       		<path>System.dll</path>
		       		<gac>true</gac>
		       	</reference>
	          </references>
	        </configuration>
	      </plugin --> 
    </plugins> 
  </build>  
  <dependencies> 
    <dependency> 
      <groupId>nunit</groupId>  
      <artifactId>nunit-console</artifactId>  
      <version>2.2</version>  
      <type>dotnet-exe</type>  
      <scope>test</scope> 
    </dependency> 
  </dependencies> 
</project>
